For a terminal device such as a mobile phone, a PDA (personal digital assistant), or a PC, there has heretofore been a concern that a software program therein such as an operating system (hereinafter referred to as OS) or an application software program is tampered by attackers, thereby causing a deterioration of safety. Hence, in recent years, in order to ensure security of such a terminal device, various techniques for checking whether or not the software program is safe have been proposed (see Patent Document 1, for example).
Patent Document 1 discloses a technique for performing checking of a software program by using multiple processors. In the technique disclosed in Patent Document 1, in a device including a main processor for executing a basic software program to be used in the device and a secure processor isolated from the main processor, the secure processor checks a software program to be executed by the main processor. In the secure processor, a key to be used in cryptography processing and decoding processing is stored in such a way that an access to the key from the outside is denied. The secure processor checks whether or not a software program to be executed by the main processor is safe, according to whether or not the software program is successfully decoded by using the key. In addition, the secure processor ensures security of a software program to be executed by the main processor, by checking the software program every time the software program is loaded from a secondary memory to a main memory and is stored.
Patent Document 1: Japanese Patent Application Publication No. 2006-18528